求"掷色子"的C语言算法,或代码...

来源:百度知道 编辑:UC知道 时间:2024/05/25 21:06:09
编程高手帮忙一下.
给个C算法,或者代码也行...
拜托了.
一楼回答的不错.谢谢...
可是这回问题出来了. 一楼的代码中所用的产生随机数的函数是C里附带的吧.
其实我想知道的是,怎么样用C语言编出一个可以产生随机数的程序.是自己编的,而不是利用机器里产生随机数的那个机制.

是“掷骰子”吧?!!这是掷骰子的程序:题目是这样子的:编写一个模拟掷骰子的程序,每个骰子从1-6,所以两个骰子组合数从2-12,随机投掷10000次,打印所有组合出现的概率!

#include<iostream.h>
#include<time.h>
#include<stdlib.h>
void main()
{
int i=0;
float a[13]={0};
srand((unsigned)time(NULL));
int num1=0,num2=0;
for(i=1;i<=10000;i++)
{
num1=rand()%6+1;
num2=rand()%6+1;
a[num1+num2]++;
a[0]++;
}
for(i=2;i<=12;i++)
{
cout<<i<<' '<<' ';
cout<<(a[i]/a[0])*100<<'%';
cout<<endl;
}
}

很难啊

仔细想一想, 如果很简单, 软件干吗要提供一个随机数生成函数呢!!!

可以获得当前时间,毫秒级...
然后就...随便自己用什么方法,比如取余...
就可以大至实现随机功能

下面程序自己实现伪随机。之所以称“伪随机”,是因为只要种子一样就会得到完全一样的随机数序列,只是在取值的概率分布上符合随机概率分布。
从概率论角度可以算出此题精确的概率分布为:
p[2]=1/36,p[3]=2/36,...,p[7]=6/36,p[8]=5/36,p[9]=4/36,...p[12]=1/3